#pragma once

#include <iostream>
#include <string>
#include <cstring>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <cassert>
#include <cerrno>
#include <fcntl.h>

#define NAMED_PIPE "/tmp/mypipe.server"

bool createFifo(const std::string& path)
{
    umask(0);
    int n = mkfifo(path.c_str(), 0600);// 这是为了兼容C语言的操作，C语言中没有string类型，则c_str()需要把对象转换成c中的字符串样式，字符串内容不变
    if(n == 0) 
    {
        return true;
    }
    else 
    {
        std::cout<<"errno: "<<errno<<" error string: "<<strerror(errno)<<std::endl;
        return false;
    }
}

void removefifo(const std::string& path)
{
    int n = unlink(path.c_str());
    assert(n == 0);//意料之中，用assert。意料之外，if判断。有可能是你内心中笃定的点出问题了。
    (void)n;
}






